# @shuaige : 陈世玉
# @name :2-Redemo1.py
# @time :2025/1/16 17:20
import re
#fandall: 匹配字符串中所有符合模式的字符串，返回列表
lst=re.findall(r'\d+', 'runoob 123 google 456')
print(lst) # 输出结果：['123', '456']
#fanditer: 匹配字符串中所有符合模式的字符串，返回迭代器 从迭代器中获取内容需要使用.group()方法
it=re.finditer(r'\d+', 'runoob 123 google 456')
print(it) #输出结果为一个迭代器
# search: 搜索字符串中符合模式的字符串，返回对象，如果没有找到匹配，返回None
match=re.search(r'\d+', 'runoob 123 google 456')
print(match.group()) #特点：检索到一个符合条件的数据就会返回
# match: 匹配字符串开头是否符合模式，返回对象，如果没有找到匹配，返回None
match=re.match(r'\d+', '123 google 456')
print(match.group())

# 预加载正则表达式
pattern=re.compile(r'\d+') #表示提前在正则表达式中编译好，匹配的时候直接使用
match=pattern.match('123 google 456')
print(match.group())

# flags：标志位，表示正则表达式的匹配模式
# 常见的标志位是 re.I表示忽略大小写，re.M表示多行匹配，re.S表示匹配包括换行符在内的所有字符

# 提取数据(?P<分组名称>.*?)
# 匹配数据，并保存到分组中，使用(?P<分组名称>.*?)
# 使用.group('分组名称')进行提取数据